Move Juno port to plat/arm/board/juno
authorDan Handley <[email protected]>
Mon, 27 Apr 2015 18:34:53 +0000 (19:34 +0100)
committerDan Handley <[email protected]>
Tue, 28 Apr 2015 18:50:56 +0000 (19:50 +0100)
Move the Juno port from plat/juno to plat/arm/board/juno. Also rename
some of the files so they are consistently prefixed with juno_.
Update the platform makefiles accordingly.

Change-Id: I0af6cb52a5fee7ef209107a1188b76a3c33a2a9f

16 files changed:
plat/arm/board/juno/aarch64/juno_helpers.S [new file with mode: 0644]
plat/arm/board/juno/include/plat_macros.S [new file with mode: 0644]
plat/arm/board/juno/include/platform_def.h [new file with mode: 0644]
plat/arm/board/juno/include/platform_oid.h [new file with mode: 0644]
plat/arm/board/juno/juno_def.h [new file with mode: 0644]
plat/arm/board/juno/juno_security.c [new file with mode: 0644]
plat/arm/board/juno/platform.mk [new file with mode: 0644]
plat/arm/board/juno/tsp/tsp-juno.mk [new file with mode: 0644]
plat/juno/aarch64/plat_helpers.S [deleted file]
plat/juno/include/plat_macros.S [deleted file]
plat/juno/include/platform_def.h [deleted file]
plat/juno/include/platform_oid.h [deleted file]
plat/juno/juno_def.h [deleted file]
plat/juno/plat_security.c [deleted file]
plat/juno/platform.mk [deleted file]
plat/juno/tsp/tsp-juno.mk [deleted file]

diff --git a/plat/arm/board/juno/aarch64/juno_helpers.S b/plat/arm/board/juno/aarch64/juno_helpers.S
new file mode 100644 (file)
index 0000000..6d31847
--- /dev/null
@@ -0,0 +1,128 @@
+/*
+ * Copyright (c) 2013-2015, ARM Limited and Contributors. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * Neither the name of ARM nor the names of its contributors may be used
+ * to endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <arch.h>
+#include <asm_macros.S>
+#include <bl_common.h>
+#include <cortex_a57.h>
+#include <v2m_def.h>
+#include "../juno_def.h"
+
+
+       .globl  plat_reset_handler
+
+
+       /* --------------------------------------------------------------------
+        * void plat_reset_handler(void);
+        *
+        * Before adding code in this function, refer to the guidelines in
+        * docs/firmware-design.md to determine whether the code should reside
+        * within the FIRST_RESET_HANDLER_CALL block or not.
+        *
+        * For Juno r0:
+        * - Implement workaround for defect id 831273 by enabling an event
+        *   stream every 65536 cycles.
+        * - Set the L2 Data RAM latency to 2 (i.e. 3 cycles) for Cortex-A57
+        * - Set the L2 Tag RAM latency to 2 (i.e. 3 cycles) for Cortex-A57
+        *
+        * For Juno r1:
+        * - Set the L2 Data RAM latency to 2 (i.e. 3 cycles) for Cortex-A57
+        * Note that:
+        * - The default value for the L2 Tag RAM latency for Cortex-A57 is
+        *   suitable.
+        * - Defect #831273 doesn't affect Juno r1.
+        *
+        * This code is included only when FIRST_RESET_HANDLER_CALL is defined
+        * since it should be executed only during BL1.
+        * --------------------------------------------------------------------
+        */
+func plat_reset_handler
+#ifdef FIRST_RESET_HANDLER_CALL
+       /* --------------------------------------------------------------------
+        * Determine whether this code is running on Juno r0 or Juno r1.
+        * Keep this information in x2.
+        * --------------------------------------------------------------------
+        */
+       /* Read the V2M SYS_ID register */
+       mov_imm x0, (V2M_SYSREGS_BASE + V2M_SYS_ID)
+       ldr     w1, [x0]
+       /* Extract board revision from the SYS_ID */
+       ubfx    x1, x1, #V2M_SYS_ID_REV_SHIFT, #4
+       /*
+        * On Juno R0:  x2 := REV_JUNO_R0 - 1 = 0
+        * On Juno R1:  x2 := REV_JUNO_R1 - 1 = 1
+        */
+       sub     x2, x1, #1
+
+       /* --------------------------------------------------------------------
+        * Determine whether this code is executed on a Cortex-A53 or on a
+        * Cortex-A57 core.
+        * --------------------------------------------------------------------
+        */
+       mrs     x0, midr_el1
+       ubfx    x1, x0, MIDR_PN_SHIFT, #12
+       cmp     w1, #((CORTEX_A57_MIDR >> MIDR_PN_SHIFT) & MIDR_PN_MASK)
+       b.eq    A57
+
+       /* Nothing needs to be done for the Cortex-A53 on Juno r1 */
+       cbz     x2, apply_831273
+       ret
+
+A57:
+       /* --------------------------------------------------------------------
+        * Cortex-A57 specific settings
+        * --------------------------------------------------------------------
+        */
+
+       /* Change the L2 Data RAM latency to 3 cycles */
+       mov     x0, #L2_DATA_RAM_LATENCY_3_CYCLES
+       cbnz    x2, apply_l2_ram_latencies
+       /* On Juno r0, also change the L2 Tag RAM latency to 3 cycles */
+       orr     x0, x0, #(L2_TAG_RAM_LATENCY_3_CYCLES <<                \
+                               L2CTLR_TAG_RAM_LATENCY_SHIFT)
+apply_l2_ram_latencies:
+       msr     L2CTLR_EL1, x0
+
+       /* Juno r1 doesn't suffer from defect #831273 */
+       cbnz    x2, ret
+
+apply_831273:
+       /* --------------------------------------------------------------------
+        * On Juno r0, enable the event stream every 65536 cycles
+        * --------------------------------------------------------------------
+        */
+       mov     x0, #(0xf << EVNTI_SHIFT)
+       orr     x0, x0, #EVNTEN_BIT
+       msr     CNTKCTL_EL1, x0
+ret:
+       isb
+#endif /* FIRST_RESET_HANDLER_CALL */
+       ret
+endfunc plat_reset_handler
diff --git a/plat/arm/board/juno/include/plat_macros.S b/plat/arm/board/juno/include/plat_macros.S
new file mode 100644 (file)
index 0000000..db0c1d2
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2014-2015, ARM Limited and Contributors. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * Neither the name of ARM nor the names of its contributors may be used
+ * to endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef __PLAT_MACROS_S__
+#define __PLAT_MACROS_S__
+
+#include <css_macros.S>
+
+/*
+ * Required platform porting macros
+ * (Provided by included headers)
+ */
+
+
+#endif /* __PLAT_MACROS_S__ */
diff --git a/plat/arm/board/juno/include/platform_def.h b/plat/arm/board/juno/include/platform_def.h
new file mode 100644 (file)
index 0000000..d2122ad
--- /dev/null
@@ -0,0 +1,114 @@
+/*
+ * Copyright (c) 2014-2015, ARM Limited and Contributors. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * Neither the name of ARM nor the names of its contributors may be used
+ * to endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef __PLATFORM_DEF_H__
+#define __PLATFORM_DEF_H__
+
+#include <arm_def.h>
+#include <board_arm_def.h>
+#include <board_css_def.h>
+#include <common_def.h>
+#include <css_def.h>
+#include <soc_css_def.h>
+#include <tzc400.h>
+#include <v2m_def.h>
+#include "../juno_def.h"
+
+
+/*
+ * Most platform porting definitions provided by included headers
+ */
+
+/*
+ * Required ARM standard platform porting definitions
+ */
+#define PLAT_ARM_CLUSTER0_CORE_COUNT   2
+#define PLAT_ARM_CLUSTER1_CORE_COUNT   4
+
+/* Use the bypass address */
+#define PLAT_ARM_TRUSTED_ROM_BASE      V2M_FLASH0_BASE + BL1_ROM_BYPASS_OFFSET
+
+/*
+ * Actual ROM size on Juno is 64 KB, but TBB currently requires at least 80 KB
+ * in debug mode. We can test TBB on Juno bypassing the ROM and using 128 KB of
+ * flash
+ */
+#if TRUSTED_BOARD_BOOT
+#define PLAT_ARM_TRUSTED_ROM_SIZE      0x00020000
+#else
+#define PLAT_ARM_TRUSTED_ROM_SIZE      0x00010000
+#endif /* TRUSTED_BOARD_BOOT */
+
+
+/* CCI related constants */
+#define PLAT_ARM_CCI_BASE              0x2c090000
+#define PLAT_ARM_CCI_CLUSTER0_SL_IFACE_IX      4
+#define PLAT_ARM_CCI_CLUSTER1_SL_IFACE_IX      3
+
+/* TZC related constants */
+#define PLAT_ARM_TZC_NS_DEV_ACCESS     (                               \
+               TZC_REGION_ACCESS_RDWR(TZC400_NSAID_CCI400)     |       \
+               TZC_REGION_ACCESS_RDWR(TZC400_NSAID_PCIE)       |       \
+               TZC_REGION_ACCESS_RDWR(TZC400_NSAID_HDLCD0)     |       \
+               TZC_REGION_ACCESS_RDWR(TZC400_NSAID_HDLCD1)     |       \
+               TZC_REGION_ACCESS_RDWR(TZC400_NSAID_USB)        |       \
+               TZC_REGION_ACCESS_RDWR(TZC400_NSAID_DMA330)     |       \
+               TZC_REGION_ACCESS_RDWR(TZC400_NSAID_THINLINKS)  |       \
+               TZC_REGION_ACCESS_RDWR(TZC400_NSAID_AP)         |       \
+               TZC_REGION_ACCESS_RDWR(TZC400_NSAID_GPU)        |       \
+               TZC_REGION_ACCESS_RDWR(TZC400_NSAID_CORESIGHT))
+
+/*
+ * Required ARM CSS based platform porting definitions
+ */
+
+/* GIC related constants (no GICR in GIC-400) */
+#define PLAT_CSS_GICD_BASE             0x2c010000
+#define PLAT_CSS_GICR_BASE             0x0
+#define PLAT_CSS_GICC_BASE             0x2c02f000
+#define PLAT_CSS_GICH_BASE             0x2c04f000
+#define PLAT_CSS_GICV_BASE             0x2c06f000
+
+#define PLAT_CSS_IRQ_SEC_LIST          CSS_IRQ_MHU,            \
+                                       CSS_IRQ_GPU_SMMU_0,     \
+                                       CSS_IRQ_GPU_SMMU_1,     \
+                                       CSS_IRQ_ETR_SMMU,       \
+                                       CSS_IRQ_TZC,            \
+                                       CSS_IRQ_TZ_WDOG
+
+/*
+ * Required ARM CSS SoC based platform porting definitions
+ */
+
+/* CSS SoC NIC-400 Global Programmers View (GPV) */
+#define PLAT_SOC_CSS_NIC400_BASE       0x2a000000
+
+
+#endif /* __PLATFORM_DEF_H__ */
diff --git a/plat/arm/board/juno/include/platform_oid.h b/plat/arm/board/juno/include/platform_oid.h
new file mode 100644 (file)
index 0000000..1e44cf7
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2015, ARM Limited and Contributors. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * Neither the name of ARM nor the names of its contributors may be used
+ * to endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "../../../../../include/plat/arm/board/common/board_arm_oid.h"
+
+/*
+ * Required platform OIDs
+ * (Provided by included header)
+ */
diff --git a/plat/arm/board/juno/juno_def.h b/plat/arm/board/juno/juno_def.h
new file mode 100644 (file)
index 0000000..8fe3835
--- /dev/null
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 2014-2015, ARM Limited and Contributors. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * Neither the name of ARM nor the names of its contributors may be used
+ * to endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef __JUNO_DEF_H__
+#define __JUNO_DEF_H__
+
+
+/*******************************************************************************
+ * Juno memory map related constants
+ ******************************************************************************/
+
+/* Board revisions */
+#define REV_JUNO_R0                    0x1     /* Rev B */
+#define REV_JUNO_R1                    0x2     /* Rev C */
+
+/* Bypass offset from start of NOR flash */
+#define BL1_ROM_BYPASS_OFFSET          0x03EC0000
+
+#define EMMC_BASE                      0x0c000000
+#define EMMC_SIZE                      0x04000000
+
+#define PSRAM_BASE                     0x14000000
+#define PSRAM_SIZE                     0x02000000
+
+
+/*******************************************************************************
+ * TZC-400 related constants
+ ******************************************************************************/
+#define TZC400_NSAID_CCI400            0  /* Note: Same as default NSAID!! */
+#define TZC400_NSAID_PCIE              1
+#define TZC400_NSAID_HDLCD0            2
+#define TZC400_NSAID_HDLCD1            3
+#define TZC400_NSAID_USB               4
+#define TZC400_NSAID_DMA330            5
+#define TZC400_NSAID_THINLINKS         6
+#define TZC400_NSAID_AP                        9
+#define TZC400_NSAID_GPU               10
+#define TZC400_NSAID_SCP               11
+#define TZC400_NSAID_CORESIGHT         12
+
+/*******************************************************************************
+ * MMU-401 related constants
+ ******************************************************************************/
+#define MMU401_SSD_OFFSET              0x4000
+#define MMU401_DMA330_BASE             0x7fb00000
+
+
+#endif /* __JUNO_DEF_H__ */
diff --git a/plat/arm/board/juno/juno_security.c b/plat/arm/board/juno/juno_security.c
new file mode 100644 (file)
index 0000000..1de38c3
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2014-2015, ARM Limited and Contributors. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * Neither the name of ARM nor the names of its contributors may be used
+ * to endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <mmio.h>
+#include <plat_arm.h>
+#include <soc_css.h>
+#include "juno_def.h"
+
+
+/*******************************************************************************
+ * Set up the MMU-401 SSD tables. The power-on configuration has all stream IDs
+ * assigned to Non-Secure except some for the DMA-330. Assign those back to the
+ * Non-Secure world as well, otherwise EL1 may end up erroneously generating
+ * (untranslated) Secure transactions if it turns the SMMU on.
+ ******************************************************************************/
+static void init_mmu401(void)
+{
+       uint32_t reg = mmio_read_32(MMU401_DMA330_BASE + MMU401_SSD_OFFSET);
+       reg |= 0x1FF;
+       mmio_write_32(MMU401_DMA330_BASE + MMU401_SSD_OFFSET, reg);
+}
+
+/*******************************************************************************
+ * Initialize the secure environment.
+ ******************************************************************************/
+void plat_arm_security_setup(void)
+{
+       /* Initialize the TrustZone Controller */
+       arm_tzc_setup();
+       /* Do ARM CSS SoC security setup */
+       soc_css_security_setup();
+       /* Initialize the SMMU SSD tables*/
+       init_mmu401();
+}
diff --git a/plat/arm/board/juno/platform.mk b/plat/arm/board/juno/platform.mk
new file mode 100644 (file)
index 0000000..d8d4f14
--- /dev/null
@@ -0,0 +1,55 @@
+#
+# Copyright (c) 2013-2015, ARM Limited and Contributors. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+#
+# Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation
+# and/or other materials provided with the distribution.
+#
+# Neither the name of ARM nor the names of its contributors may be used
+# to endorse or promote products derived from this software without specific
+# prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+
+PLAT_INCLUDES          :=      -Iplat/arm/board/juno/include
+
+PLAT_BL_COMMON_SOURCES :=      plat/arm/board/juno/aarch64/juno_helpers.S
+
+BL1_SOURCES            +=      lib/cpus/aarch64/cortex_a53.S           \
+                               lib/cpus/aarch64/cortex_a57.S
+
+BL2_SOURCES            +=      plat/arm/board/juno/juno_security.c     \
+
+BL31_SOURCES           +=      lib/cpus/aarch64/cortex_a53.S           \
+                               lib/cpus/aarch64/cortex_a57.S
+
+
+# Enable workarounds for selected Cortex-A57 erratas.
+ERRATA_A57_806969      :=      0
+ERRATA_A57_813420      :=      1
+
+# Enable option to skip L1 data cache flush during the Cortex-A57 cluster
+# power down sequence
+SKIP_A57_L1_FLUSH_PWR_DWN      :=       1
+
+include plat/arm/board/common/board_css.mk
+include plat/arm/common/arm_common.mk
+include plat/arm/soc/common/soc_css.mk
+include plat/arm/css/common/css_common.mk
diff --git a/plat/arm/board/juno/tsp/tsp-juno.mk b/plat/arm/board/juno/tsp/tsp-juno.mk
new file mode 100644 (file)
index 0000000..55b031a
--- /dev/null
@@ -0,0 +1,31 @@
+#
+# Copyright (c) 2014-2015, ARM Limited and Contributors. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+#
+# Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation
+# and/or other materials provided with the distribution.
+#
+# Neither the name of ARM nor the names of its contributors may be used
+# to endorse or promote products derived from this software without specific
+# prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+
+include plat/arm/common/tsp/arm_tsp.mk
diff --git a/plat/juno/aarch64/plat_helpers.S b/plat/juno/aarch64/plat_helpers.S
deleted file mode 100644 (file)
index 6d31847..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright (c) 2013-2015, ARM Limited and Contributors. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * Neither the name of ARM nor the names of its contributors may be used
- * to endorse or promote products derived from this software without specific
- * prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <arch.h>
-#include <asm_macros.S>
-#include <bl_common.h>
-#include <cortex_a57.h>
-#include <v2m_def.h>
-#include "../juno_def.h"
-
-
-       .globl  plat_reset_handler
-
-
-       /* --------------------------------------------------------------------
-        * void plat_reset_handler(void);
-        *
-        * Before adding code in this function, refer to the guidelines in
-        * docs/firmware-design.md to determine whether the code should reside
-        * within the FIRST_RESET_HANDLER_CALL block or not.
-        *
-        * For Juno r0:
-        * - Implement workaround for defect id 831273 by enabling an event
-        *   stream every 65536 cycles.
-        * - Set the L2 Data RAM latency to 2 (i.e. 3 cycles) for Cortex-A57
-        * - Set the L2 Tag RAM latency to 2 (i.e. 3 cycles) for Cortex-A57
-        *
-        * For Juno r1:
-        * - Set the L2 Data RAM latency to 2 (i.e. 3 cycles) for Cortex-A57
-        * Note that:
-        * - The default value for the L2 Tag RAM latency for Cortex-A57 is
-        *   suitable.
-        * - Defect #831273 doesn't affect Juno r1.
-        *
-        * This code is included only when FIRST_RESET_HANDLER_CALL is defined
-        * since it should be executed only during BL1.
-        * --------------------------------------------------------------------
-        */
-func plat_reset_handler
-#ifdef FIRST_RESET_HANDLER_CALL
-       /* --------------------------------------------------------------------
-        * Determine whether this code is running on Juno r0 or Juno r1.
-        * Keep this information in x2.
-        * --------------------------------------------------------------------
-        */
-       /* Read the V2M SYS_ID register */
-       mov_imm x0, (V2M_SYSREGS_BASE + V2M_SYS_ID)
-       ldr     w1, [x0]
-       /* Extract board revision from the SYS_ID */
-       ubfx    x1, x1, #V2M_SYS_ID_REV_SHIFT, #4
-       /*
-        * On Juno R0:  x2 := REV_JUNO_R0 - 1 = 0
-        * On Juno R1:  x2 := REV_JUNO_R1 - 1 = 1
-        */
-       sub     x2, x1, #1
-
-       /* --------------------------------------------------------------------
-        * Determine whether this code is executed on a Cortex-A53 or on a
-        * Cortex-A57 core.
-        * --------------------------------------------------------------------
-        */
-       mrs     x0, midr_el1
-       ubfx    x1, x0, MIDR_PN_SHIFT, #12
-       cmp     w1, #((CORTEX_A57_MIDR >> MIDR_PN_SHIFT) & MIDR_PN_MASK)
-       b.eq    A57
-
-       /* Nothing needs to be done for the Cortex-A53 on Juno r1 */
-       cbz     x2, apply_831273
-       ret
-
-A57:
-       /* --------------------------------------------------------------------
-        * Cortex-A57 specific settings
-        * --------------------------------------------------------------------
-        */
-
-       /* Change the L2 Data RAM latency to 3 cycles */
-       mov     x0, #L2_DATA_RAM_LATENCY_3_CYCLES
-       cbnz    x2, apply_l2_ram_latencies
-       /* On Juno r0, also change the L2 Tag RAM latency to 3 cycles */
-       orr     x0, x0, #(L2_TAG_RAM_LATENCY_3_CYCLES <<                \
-                               L2CTLR_TAG_RAM_LATENCY_SHIFT)
-apply_l2_ram_latencies:
-       msr     L2CTLR_EL1, x0
-
-       /* Juno r1 doesn't suffer from defect #831273 */
-       cbnz    x2, ret
-
-apply_831273:
-       /* --------------------------------------------------------------------
-        * On Juno r0, enable the event stream every 65536 cycles
-        * --------------------------------------------------------------------
-        */
-       mov     x0, #(0xf << EVNTI_SHIFT)
-       orr     x0, x0, #EVNTEN_BIT
-       msr     CNTKCTL_EL1, x0
-ret:
-       isb
-#endif /* FIRST_RESET_HANDLER_CALL */
-       ret
-endfunc plat_reset_handler
diff --git a/plat/juno/include/plat_macros.S b/plat/juno/include/plat_macros.S
deleted file mode 100644 (file)
index db0c1d2..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (c) 2014-2015, ARM Limited and Contributors. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * Neither the name of ARM nor the names of its contributors may be used
- * to endorse or promote products derived from this software without specific
- * prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-#ifndef __PLAT_MACROS_S__
-#define __PLAT_MACROS_S__
-
-#include <css_macros.S>
-
-/*
- * Required platform porting macros
- * (Provided by included headers)
- */
-
-
-#endif /* __PLAT_MACROS_S__ */
diff --git a/plat/juno/include/platform_def.h b/plat/juno/include/platform_def.h
deleted file mode 100644 (file)
index d2122ad..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright (c) 2014-2015, ARM Limited and Contributors. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * Neither the name of ARM nor the names of its contributors may be used
- * to endorse or promote products derived from this software without specific
- * prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef __PLATFORM_DEF_H__
-#define __PLATFORM_DEF_H__
-
-#include <arm_def.h>
-#include <board_arm_def.h>
-#include <board_css_def.h>
-#include <common_def.h>
-#include <css_def.h>
-#include <soc_css_def.h>
-#include <tzc400.h>
-#include <v2m_def.h>
-#include "../juno_def.h"
-
-
-/*
- * Most platform porting definitions provided by included headers
- */
-
-/*
- * Required ARM standard platform porting definitions
- */
-#define PLAT_ARM_CLUSTER0_CORE_COUNT   2
-#define PLAT_ARM_CLUSTER1_CORE_COUNT   4
-
-/* Use the bypass address */
-#define PLAT_ARM_TRUSTED_ROM_BASE      V2M_FLASH0_BASE + BL1_ROM_BYPASS_OFFSET
-
-/*
- * Actual ROM size on Juno is 64 KB, but TBB currently requires at least 80 KB
- * in debug mode. We can test TBB on Juno bypassing the ROM and using 128 KB of
- * flash
- */
-#if TRUSTED_BOARD_BOOT
-#define PLAT_ARM_TRUSTED_ROM_SIZE      0x00020000
-#else
-#define PLAT_ARM_TRUSTED_ROM_SIZE      0x00010000
-#endif /* TRUSTED_BOARD_BOOT */
-
-
-/* CCI related constants */
-#define PLAT_ARM_CCI_BASE              0x2c090000
-#define PLAT_ARM_CCI_CLUSTER0_SL_IFACE_IX      4
-#define PLAT_ARM_CCI_CLUSTER1_SL_IFACE_IX      3
-
-/* TZC related constants */
-#define PLAT_ARM_TZC_NS_DEV_ACCESS     (                               \
-               TZC_REGION_ACCESS_RDWR(TZC400_NSAID_CCI400)     |       \
-               TZC_REGION_ACCESS_RDWR(TZC400_NSAID_PCIE)       |       \
-               TZC_REGION_ACCESS_RDWR(TZC400_NSAID_HDLCD0)     |       \
-               TZC_REGION_ACCESS_RDWR(TZC400_NSAID_HDLCD1)     |       \
-               TZC_REGION_ACCESS_RDWR(TZC400_NSAID_USB)        |       \
-               TZC_REGION_ACCESS_RDWR(TZC400_NSAID_DMA330)     |       \
-               TZC_REGION_ACCESS_RDWR(TZC400_NSAID_THINLINKS)  |       \
-               TZC_REGION_ACCESS_RDWR(TZC400_NSAID_AP)         |       \
-               TZC_REGION_ACCESS_RDWR(TZC400_NSAID_GPU)        |       \
-               TZC_REGION_ACCESS_RDWR(TZC400_NSAID_CORESIGHT))
-
-/*
- * Required ARM CSS based platform porting definitions
- */
-
-/* GIC related constants (no GICR in GIC-400) */
-#define PLAT_CSS_GICD_BASE             0x2c010000
-#define PLAT_CSS_GICR_BASE             0x0
-#define PLAT_CSS_GICC_BASE             0x2c02f000
-#define PLAT_CSS_GICH_BASE             0x2c04f000
-#define PLAT_CSS_GICV_BASE             0x2c06f000
-
-#define PLAT_CSS_IRQ_SEC_LIST          CSS_IRQ_MHU,            \
-                                       CSS_IRQ_GPU_SMMU_0,     \
-                                       CSS_IRQ_GPU_SMMU_1,     \
-                                       CSS_IRQ_ETR_SMMU,       \
-                                       CSS_IRQ_TZC,            \
-                                       CSS_IRQ_TZ_WDOG
-
-/*
- * Required ARM CSS SoC based platform porting definitions
- */
-
-/* CSS SoC NIC-400 Global Programmers View (GPV) */
-#define PLAT_SOC_CSS_NIC400_BASE       0x2a000000
-
-
-#endif /* __PLATFORM_DEF_H__ */
diff --git a/plat/juno/include/platform_oid.h b/plat/juno/include/platform_oid.h
deleted file mode 100644 (file)
index 1e44cf7..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2015, ARM Limited and Contributors. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * Neither the name of ARM nor the names of its contributors may be used
- * to endorse or promote products derived from this software without specific
- * prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-#include "../../../../../include/plat/arm/board/common/board_arm_oid.h"
-
-/*
- * Required platform OIDs
- * (Provided by included header)
- */
diff --git a/plat/juno/juno_def.h b/plat/juno/juno_def.h
deleted file mode 100644 (file)
index 8fe3835..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (c) 2014-2015, ARM Limited and Contributors. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * Neither the name of ARM nor the names of its contributors may be used
- * to endorse or promote products derived from this software without specific
- * prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef __JUNO_DEF_H__
-#define __JUNO_DEF_H__
-
-
-/*******************************************************************************
- * Juno memory map related constants
- ******************************************************************************/
-
-/* Board revisions */
-#define REV_JUNO_R0                    0x1     /* Rev B */
-#define REV_JUNO_R1                    0x2     /* Rev C */
-
-/* Bypass offset from start of NOR flash */
-#define BL1_ROM_BYPASS_OFFSET          0x03EC0000
-
-#define EMMC_BASE                      0x0c000000
-#define EMMC_SIZE                      0x04000000
-
-#define PSRAM_BASE                     0x14000000
-#define PSRAM_SIZE                     0x02000000
-
-
-/*******************************************************************************
- * TZC-400 related constants
- ******************************************************************************/
-#define TZC400_NSAID_CCI400            0  /* Note: Same as default NSAID!! */
-#define TZC400_NSAID_PCIE              1
-#define TZC400_NSAID_HDLCD0            2
-#define TZC400_NSAID_HDLCD1            3
-#define TZC400_NSAID_USB               4
-#define TZC400_NSAID_DMA330            5
-#define TZC400_NSAID_THINLINKS         6
-#define TZC400_NSAID_AP                        9
-#define TZC400_NSAID_GPU               10
-#define TZC400_NSAID_SCP               11
-#define TZC400_NSAID_CORESIGHT         12
-
-/*******************************************************************************
- * MMU-401 related constants
- ******************************************************************************/
-#define MMU401_SSD_OFFSET              0x4000
-#define MMU401_DMA330_BASE             0x7fb00000
-
-
-#endif /* __JUNO_DEF_H__ */
diff --git a/plat/juno/plat_security.c b/plat/juno/plat_security.c
deleted file mode 100644 (file)
index 1de38c3..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (c) 2014-2015, ARM Limited and Contributors. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * Neither the name of ARM nor the names of its contributors may be used
- * to endorse or promote products derived from this software without specific
- * prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <mmio.h>
-#include <plat_arm.h>
-#include <soc_css.h>
-#include "juno_def.h"
-
-
-/*******************************************************************************
- * Set up the MMU-401 SSD tables. The power-on configuration has all stream IDs
- * assigned to Non-Secure except some for the DMA-330. Assign those back to the
- * Non-Secure world as well, otherwise EL1 may end up erroneously generating
- * (untranslated) Secure transactions if it turns the SMMU on.
- ******************************************************************************/
-static void init_mmu401(void)
-{
-       uint32_t reg = mmio_read_32(MMU401_DMA330_BASE + MMU401_SSD_OFFSET);
-       reg |= 0x1FF;
-       mmio_write_32(MMU401_DMA330_BASE + MMU401_SSD_OFFSET, reg);
-}
-
-/*******************************************************************************
- * Initialize the secure environment.
- ******************************************************************************/
-void plat_arm_security_setup(void)
-{
-       /* Initialize the TrustZone Controller */
-       arm_tzc_setup();
-       /* Do ARM CSS SoC security setup */
-       soc_css_security_setup();
-       /* Initialize the SMMU SSD tables*/
-       init_mmu401();
-}
diff --git a/plat/juno/platform.mk b/plat/juno/platform.mk
deleted file mode 100644 (file)
index 8399c0a..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-#
-# Copyright (c) 2013-2015, ARM Limited and Contributors. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# Redistributions of source code must retain the above copyright notice, this
-# list of conditions and the following disclaimer.
-#
-# Redistributions in binary form must reproduce the above copyright notice,
-# this list of conditions and the following disclaimer in the documentation
-# and/or other materials provided with the distribution.
-#
-# Neither the name of ARM nor the names of its contributors may be used
-# to endorse or promote products derived from this software without specific
-# prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-#
-
-PLAT_INCLUDES          :=      -Iplat/juno/include
-
-PLAT_BL_COMMON_SOURCES :=      plat/juno/aarch64/plat_helpers.S
-
-BL1_SOURCES            +=      lib/cpus/aarch64/cortex_a53.S           \
-                               lib/cpus/aarch64/cortex_a57.S
-
-BL2_SOURCES            +=      plat/juno/plat_security.c               \
-
-BL31_SOURCES           +=      lib/cpus/aarch64/cortex_a53.S           \
-                               lib/cpus/aarch64/cortex_a57.S
-
-
-# Enable workarounds for selected Cortex-A57 erratas.
-ERRATA_A57_806969      :=      0
-ERRATA_A57_813420      :=      1
-
-# Enable option to skip L1 data cache flush during the Cortex-A57 cluster
-# power down sequence
-SKIP_A57_L1_FLUSH_PWR_DWN      :=       1
-
-include plat/arm/board/common/board_css.mk
-include plat/arm/common/arm_common.mk
-include plat/arm/soc/common/soc_css.mk
-include plat/arm/css/common/css_common.mk
diff --git a/plat/juno/tsp/tsp-juno.mk b/plat/juno/tsp/tsp-juno.mk
deleted file mode 100644 (file)
index 55b031a..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-#
-# Copyright (c) 2014-2015, ARM Limited and Contributors. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# Redistributions of source code must retain the above copyright notice, this
-# list of conditions and the following disclaimer.
-#
-# Redistributions in binary form must reproduce the above copyright notice,
-# this list of conditions and the following disclaimer in the documentation
-# and/or other materials provided with the distribution.
-#
-# Neither the name of ARM nor the names of its contributors may be used
-# to endorse or promote products derived from this software without specific
-# prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-#
-
-include plat/arm/common/tsp/arm_tsp.mk